<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>std.loader</title>
  <link href="./css/style.css" rel="stylesheet" type="text/css"/>
  <!-- <link href="./img/icon.png" rel="icon" type="image/png"/> -->
  <script type="text/javascript" src="./js/jquery.js"></script>
  <script type="text/javascript" src="./js/modules.js"></script>
  <script type="text/javascript" src="./js/quicksearch.js"></script>
  <script type="text/javascript" src="./js/navigation.js"></script>
  <!--<script type="text/javascript" src="./js/jquery.treeview.js"></script>-->
  <script type="text/javascript">
    var g_moduleFQN = "std.loader";
  </script>
  
</head>
<body>
<div id="content">
  <h1><a href="./htmlsrc/std.loader.html" class="symbol">std.loader</a></h1>
  
<div class="summary">\file D/std/loader.d This file contains the \c D standard library 
 executable module loader library, and the ExeModule class.</div>
<dl>
<dt class="decl">alias int <a class="symbol _alias" name="boolean" href="./htmlsrc/std.loader.html#L59" kind="alias" beg="59" end="59">boolean</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#boolean" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L59">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">alias void* <a class="symbol _alias" name="HModule_" href="./htmlsrc/std.loader.html#L81" kind="alias" beg="81" end="81">HModule_</a>; <a title="Permalink to this symbol" href="#HModule_" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L81">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">typedef void    * <a class="symbol _typedef" name="HXModule" href="./htmlsrc/std.loader.html#L96" kind="typedef" beg="96" end="96">HXModule</a>; <a title="Permalink to this symbol" href="#HXModule" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L96">#</a></dt>
<dd class="ddef">
<div class="summary">The platform-independent module handle. Note that this has to be
 separate from the platform-dependent handle because different module names
 can result in the same module being loaded, which cannot be detected in
 some operating systems</div></dd>
<dt class="decl">int <a class="symbol _function" name="ExeModule_Init" href="./htmlsrc/std.loader.html#L115" kind="function" beg="115" end="118">ExeModule_Init</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule_Init" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L115">#</a></dt>
<dd class="ddef">
<div class="summary">ExeModule library Initialisation</div>
\retval &lt;0 Initialisation failed. Processing must gracefully terminate, 
 without making any use of the ExeModule library
 \retval 0 Initialisation succeeded for the first time. Any necessary resources
 were successfully allocated
 \retval &gt;0 Initialisation has already succeefully completed via a prior call.</dd>
<dt class="decl">void <a class="symbol _function" name="ExeModule_Uninit" href="./htmlsrc/std.loader.html#L120" kind="function" beg="120" end="123">ExeModule_Uninit</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule_Uninit" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L120">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">HXModule <a class="symbol _function" name="ExeModule_Load" href="./htmlsrc/std.loader.html#L131" kind="function" beg="131" end="134">ExeModule_Load</a><span class="params">(in string <em>moduleName</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule_Load" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L131">#</a></dt>
<dd class="ddef">
<div class="summary">\note The value of the handle returned may not be a valid handle for your operating
 system, and you <b>must not</b> attempt to use it with any other operating system
 or other APIs. It is only valid for use with the ExeModule library.</div></dd>
<dt class="decl">HXModule <a class="symbol _function" name="ExeModule_AddRef" href="./htmlsrc/std.loader.html#L136" kind="function" beg="136" end="139">ExeModule_AddRef</a><span class="params">(HXModule <em>hModule</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule_AddRef" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L136">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">void <a class="symbol _function" name="ExeModule_Release" href="./htmlsrc/std.loader.html#L145" kind="function" beg="145" end="148">ExeModule_Release</a><span class="params">(inout HXModule <em>hModule</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule_Release" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L145">#</a></dt>
<dd class="ddef">
<div class="summary">\param hModule The module handler. It must not be null.</div></dd>
<dt class="decl">void * <a class="symbol _function" name="ExeModule_GetSymbol" href="./htmlsrc/std.loader.html#L150" kind="function" beg="150" end="153">ExeModule_GetSymbol</a><span class="params">(inout HXModule <em>hModule</em>, in string <em>symbolName</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule_GetSymbol" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L150">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">string <a class="symbol _function" name="ExeModule_Error" href="./htmlsrc/std.loader.html#L155" kind="function" beg="155" end="158">ExeModule_Error</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule_Error" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L155">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">class <a class="symbol _class" name="ExeModuleInfo" href="./htmlsrc/std.loader.html#L261" kind="class" beg="261" end="274">ExeModuleInfo</a>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#ExeModuleInfo" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L261">#</a></dt>
<dd class="ddef">
<dl>
<dt class="decl">int <a class="symbol _variable" name="ExeModuleInfo.m_cRefs" href="./htmlsrc/std.loader.html#L264" kind="variable" beg="264" end="264">m_cRefs</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModuleInfo.m_cRefs" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L264">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">HModule_ <a class="symbol _variable" name="ExeModuleInfo.m_hmod" href="./htmlsrc/std.loader.html#L265" kind="variable" beg="265" end="265">m_hmod</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModuleInfo.m_hmod" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L265">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">string <a class="symbol _variable" name="ExeModuleInfo.m_name" href="./htmlsrc/std.loader.html#L266" kind="variable" beg="266" end="266">m_name</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModuleInfo.m_name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L266">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _ctor" name="ExeModuleInfo.this" href="./htmlsrc/std.loader.html#L268" kind="ctor" beg="268" end="273">this</a><span class="params">(HModule_ <em>hmod</em>, string <em>name</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModuleInfo.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L268">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">int <a class="symbol _variable" name="s_init" href="./htmlsrc/std.loader.html#L276" kind="variable" beg="276" end="276">s_init</a>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#s_init" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L276">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">ExeModuleInfo [string] <a class="symbol _variable" name="s_modules" href="./htmlsrc/std.loader.html#L277" kind="variable" beg="277" end="277">s_modules</a>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#s_modules" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L277">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">string <a class="symbol _variable" name="s_lastError" href="./htmlsrc/std.loader.html#L278" kind="variable" beg="278" end="278">s_lastError</a>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#s_lastError" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L278">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">void <a class="symbol _function" name="record_error_" href="./htmlsrc/std.loader.html#L280" kind="function" beg="280" end="284">record_error_</a><span class="params">()</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#record_error_" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L280">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">int <a class="symbol _function" name="ExeModule_Init_" href="./htmlsrc/std.loader.html#L286" kind="function" beg="286" end="295">ExeModule_Init_</a><span class="params">()</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#ExeModule_Init_" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L286">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">void <a class="symbol _function" name="ExeModule_Uninit_" href="./htmlsrc/std.loader.html#L297" kind="function" beg="297" end="302">ExeModule_Uninit_</a><span class="params">()</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#ExeModule_Uninit_" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L297">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">HXModule <a class="symbol _function" name="ExeModule_Load_" href="./htmlsrc/std.loader.html#L304" kind="function" beg="304" end="337">ExeModule_Load_</a><span class="params">(in string <em>moduleName</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#ExeModule_Load_" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L304">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">HXModule <a class="symbol _function" name="ExeModule_AddRef_" href="./htmlsrc/std.loader.html#L339" kind="function" beg="339" end="364">ExeModule_AddRef_</a><span class="params">(HXModule <em>hModule</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#ExeModule_AddRef_" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L339">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">void <a class="symbol _function" name="ExeModule_Release_" href="./htmlsrc/std.loader.html#L366" kind="function" beg="366" end="396">ExeModule_Release_</a><span class="params">(inout HXModule <em>hModule</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#ExeModule_Release_" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L366">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">void * <a class="symbol _function" name="ExeModule_GetSymbol_" href="./htmlsrc/std.loader.html#L398" kind="function" beg="398" end="422">ExeModule_GetSymbol_</a><span class="params">(inout HXModule <em>hModule</em>, in string <em>symbolName</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#ExeModule_GetSymbol_" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L398">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">string <a class="symbol _function" name="ExeModule_Error_" href="./htmlsrc/std.loader.html#L424" kind="function" beg="424" end="427">ExeModule_Error_</a><span class="params">()</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#ExeModule_Error_" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L424">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">string <a class="symbol _function" name="ExeModule_GetPath_" href="./htmlsrc/std.loader.html#L429" kind="function" beg="429" end="447">ExeModule_GetPath_</a><span class="params">(HXModule <em>hModule</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#ExeModule_GetPath_" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L429">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">class <a class="symbol _class" name="ExeModuleException" href="./htmlsrc/std.loader.html#L460" kind="class" beg="460" end="481">ExeModuleException</a> : Exception; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModuleException" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L460">#</a></dt>
<dd class="ddef">
<dl>
<dt class="decl"><a class="symbol _ctor" name="ExeModuleException.this" href="./htmlsrc/std.loader.html#L464" kind="ctor" beg="464" end="467">this</a><span class="params">(string <em>message</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModuleException.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L464">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _ctor" name="ExeModuleException.this:2" href="./htmlsrc/std.loader.html#L469" kind="ctor" beg="469" end="480">this</a><span class="params">(uint <em>errcode</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModuleException.this:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L469">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ExeModule" href="./htmlsrc/std.loader.html#L484" kind="class" beg="484" end="660">ExeModule</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L484">#</a></dt>
<dd class="ddef">
<div class="summary">This class represents an executable image</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="ExeModule.this" href="./htmlsrc/std.loader.html#L490" kind="ctor" beg="490" end="517">this</a><span class="params">(HXModule <em>hModule</em>, boolean <em>bTakeOwnership</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L490">#</a></dt>
<dd class="ddef">
<div class="summary">\name Construction
 @{
 Constructs from an existing image handle</div></dd>
<dt class="decl"><a class="symbol _ctor" name="ExeModule.this:2" href="./htmlsrc/std.loader.html#L519" kind="ctor" beg="519" end="542">this</a><span class="params">(string <em>moduleName</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule.this:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L519">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _dtor" name="ExeModule.~this" href="./htmlsrc/std.loader.html#L543" kind="dtor" beg="543" end="546">~this</a>(); <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule.~this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L543">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">void <a class="symbol _function" name="ExeModule.close" href="./htmlsrc/std.loader.html#L556" kind="function" beg="556" end="572">close</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule.close" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L556">#</a></dt>
<dd class="ddef">
<div class="summary">@}
 \name Operations
 @{
 Closes the library</div>
\note This is available to close the module at any time. Repeated
 calls do not result in an error, and are simply ignored.</dd>
<dt class="decl">void * <a class="symbol _function" name="ExeModule.getSymbol" href="./htmlsrc/std.loader.html#L583" kind="function" beg="583" end="608">getSymbol</a><span class="params">(in string <em>symbolName</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule.getSymbol" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L583">#</a></dt>
<dd class="ddef">
<div class="summary">@}
 \name Accessors
 @{
 Retrieves the named symbol.</div>
\return A pointer to the symbol. There is no null return - failure to retrieve the symbol
 results in an ExeModuleException exception being thrown.</dd>
<dt class="decl">void * <a class="symbol _function" name="ExeModule.findSymbol" href="./htmlsrc/std.loader.html#L614" kind="function" beg="614" end="617">findSymbol</a><span class="params">(in string <em>symbolName</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule.findSymbol" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L614">#</a></dt>
<dd class="ddef">
<div class="summary">Retrieves the named symbol.</div>
\return A pointer to the symbol, or null if it does not exist</dd>
<dt class="decl">HXModule <a class="symbol _function" name="ExeModule.Handle" href="./htmlsrc/std.loader.html#L627" kind="function" beg="627" end="630">Handle</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule.Handle" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L627">#</a></dt>
<dd class="ddef">
<div class="summary">@}
 \name Properties
 @{
 The handle of the module</div>
\note Will be \c null if the module load in the constructor failed</dd>
<dt class="decl">string <a class="symbol _function" name="ExeModule.Path" href="./htmlsrc/std.loader.html#L634" kind="function" beg="634" end="655">Path</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExeModule.Path" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L634">#</a></dt>
<dd class="ddef">
<div class="summary">The handle of the module</div>
\note Will be \c null if the module load in the constructor failed</dd>
<dt class="decl">HXModule <a class="symbol _variable" name="ExeModule.m_hModule" href="./htmlsrc/std.loader.html#L659" kind="variable" beg="659" end="659">m_hModule</a>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#ExeModule.m_hModule" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/std.loader.html#L659">#</a></dt>
<dd class="ddef">
<div class="summary">@}</div></dd></dl></dd></dl>
</div>
<div id="footer">
  <p>Copyright © 1999-2008 by Digital Mars ®, All Rights Reserved.</p>
  <p>Page generated by <a href="http://code.google.com/p/dil">dil</a> on Sun Dec 28 04:26:40 2008. Rendered by <a href="http://code.google.com/p/dil/wiki/Kandil">kandil</a>.</p>
</div>
</body>
</html>